package com.payment.system.mapper;

import com.payment.common.annotation.DataSource;
import com.payment.common.enums.DataSourceType;
import com.payment.system.domain.MerchantImage;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商户资质 数据层
 * 
 * @author payment
 * @date 2019-01-11
 */
public interface MerchantImageMapper 
{
	/**
     * 查询商户资质信息
     * 
     * @return 商户资质信息
     */
	@DataSource(DataSourceType.SLAVE)
	public MerchantImage selectMerchantImageById(String id);
	
	/**
     * 查询商户资质列表
     * 
     * @param merchantImage 商户资质信息
     * @return 商户资质集合
     */
	@DataSource(DataSourceType.SLAVE)
	public List<MerchantImage> selectMerchantImageList(MerchantImage merchantImage);
	
	/**
     * 新增商户资质
     * 
     * @param merchantImage 商户资质信息
     * @return 结果
     */
	public int insertMerchantImage(MerchantImage merchantImage);
	
	/**
     * 修改商户资质
     * 
     * @param merchantImage 商户资质信息
     * @return 结果
     */
	public int updateMerchantImage(MerchantImage merchantImage);
	
	/**
     * 删除商户资质
     * 
     * @param type 商户资质ID
     * @return 结果
     */
	public int deleteMerchantImageById(String type);
	
	/**
     * 批量删除商户资质
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteMerchantImageByIds(String[] ids);

	//获取商户资质图片信息
	@DataSource(DataSourceType.SLAVE)
    List<MerchantImage> selectMerchantImageListByMerchantId(@Param("merchantId") String merchantId);

	/**
	 * 获取用户制定类型域的资质信息
	 * @see com.payment.common.type.MerchantImgStatus
 	 */
	@DataSource(DataSourceType.SLAVE)
    List<MerchantImage> selectMerchantImageListByMerchantIdAndType(@Param("merchantId") String merchantId, @Param("type") String type);

	//删除用户资质  商户id 资质类型
	int deleteMerchantImageByMerchantIdAndType(@Param("merchantId") String merchantId, @Param("type") String type);

	List<MerchantImage> selectMerchantImageListByMerchantIdAndTypeTWO(@Param("merchantId") String merchantId, @Param("type") String type);

}